package com.ungs.bo.impl;

import java.util.ArrayList;
import java.util.List;

import com.ungs.bo.DetalleCompraBO;
import com.ungs.dao.DetalleCompraDAO;
import com.ungs.dao.impl.DetalleCompraDAOImpl;
import com.ungs.entities.DetalleCompra;
import com.ungs.entities.SolicitudCompra;
import com.ungs.utils.Constantes;

public class DetalleCompraBOImpl extends EntidadBOImpl<DetalleCompra> implements
		DetalleCompraBO {
	private DetalleCompraDAO detalleCompraDAO = new DetalleCompraDAOImpl();

	@Override
	public List<DetalleCompra> getDetalleCompraBySolicitud(
			SolicitudCompra solicitudCompra) {
		return detalleCompraDAO.getDetalleCompraBySolicitud(solicitudCompra);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<DetalleCompra> getAllDetalleCompra() {
		List<DetalleCompra> detalleCompraList = (List<DetalleCompra>) getAll(DetalleCompra.class);
		List<DetalleCompra> detalleCompraReturn = new ArrayList<DetalleCompra>();

		logger.info("Obteniendo lista de detalle compra con alta logica");
		for (DetalleCompra detalleCompra : detalleCompraList) {
			if (detalleCompra.getEstadoLogico().equals(Constantes.ALTA)) {
				detalleCompraReturn.add(detalleCompra);
			}
		}

		return detalleCompraReturn;
	}

	@Override
	public void eliminarDetalleCompra(DetalleCompra detalleCompra) {
		logger.info("Baja logica detalleCompra: " + detalleCompra.getId());
		detalleCompra.setEstadoLogico(Constantes.BAJA);
		actualizar(detalleCompra);

	}

}
